package com.bdqn;

import com.bdqn.pojo.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.*;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

@SpringBootTest
@RunWith(SpringRunner.class)
public class RedisTemplateTester {
    @Resource
    private StringRedisTemplate stringRedisTemplate; //操作字符串数据
    @Resource
    private RedisTemplate redisTemplate; //操作其他数据类型
  @Test
    public void testString(){
        stringRedisTemplate.opsForValue().set("name", "czkt");
        Assert.assertEquals("czkt", stringRedisTemplate.opsForValue().get("name"));
    }

    @Test
    public void testObj(){
        User user=new User("czkt","123456",1L,null);
        ValueOperations<String,User>operations=redisTemplate.opsForValue();
        operations.set("ktjiaoyu.crm.user.czkt", user);
        User u=operations.get("ktjiaoyu.crm.user.czkt");
        System.out.println("user.usrName: "+u.getUsrName());

    }
    @Test
    public void testExpire() throws InterruptedException {
      User user=new User("cskt","123456",1L,null);
      ValueOperations<String,User>operations=redisTemplate.opsForValue();
      operations.set("expire",user,100, TimeUnit.MILLISECONDS);
      Thread.sleep(1000);
      boolean exists=redisTemplate.hasKey("expire");
      if(exists){
          System.out.println("exists is true");

      } else {
          System.out.println("exists is false");
      }
  }
  @Test
  public void testHash(){
      HashOperations<String,Object,Object>hash=redisTemplate.opsForHash();
      hash.put("hash","name","ktjjiaoyu");
      String value=(String)hash.get("hash","name");
      System.out.println("hash name value:"+value);
  }
 @Test
public void testList() {
         ListOperations<String, String> list = redisTemplate.opsForList();
         list.leftPush("list","accp");
         list.leftPush("list","bdqn");
         list.leftPush("list","czkt");
         String value=(String)list.leftPop("list");
         System.out.println("list value :"+value.toString());
         }
}
